package com.jinpeng.common.aspect;

import java.util.ArrayList;
import java.util.List;

/**
 * datasource的上下文
 *
 * @author earthchen
 * @date 2018/8/26
 **/
public class DynamicDatasourceHolder {

    //该类用于操作和保存创建的连接，用ThreadLocal保存创建的数据源，可适用于并发操作，wxj

    private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();


    /**
     * 数据源的key集合，用于切换时判断数据源是否存在
     */
    public static List<Object> dataSourceKeys = new ArrayList<>();

    /**
     * 设置数据源类型
     *
     * @param dataSourceType 数据库类型
     */
    public static void setDataSourceType(String dataSourceType) {
        contextHolder.set(dataSourceType);
    }

    /**
     * 获取数据源类型
     */
    public static String getDataSourceType() {
        return contextHolder.get();
    }

    /**
     * 清除数据源类型
     */
    public static void clearDataSourceType() {
        contextHolder.remove();
    }


    /**
     * 判断指定DataSource当前是否存在
     */

    public static boolean containDataSourceKey(String key) {
        return dataSourceKeys.contains(key);
    }
}
